<?php

  /**
   * RatingController
   *
   * Класс контроллера для работы с рейтингом
   */

  final class RatingController extends XMLController
  {
    /**
     * Action проголосовать
     *
     * $_POST == array(
     *   "score" => "оценка(плюсануть, минусануть, пожаловаться)",
     *   "key"   => array(
     *     "table"  => "имя таблицы, для записи которой добавляется комментарий",
     *     "rec_id" => идентификатор записи, для которой добавляется комментарий
     *   )
     * )
     *
     * @return void
     * @access public
     */
    public function actionVote()
    {
      WebApplication::validate($score = $this->getParam("score"));
      $this->checkAccess("assess_credibility");

      $pk = array("user_id" => $this->app->user->id) + $this->getParam("key");

      /** @var $authority Authority */
      $authority = Authority::model();

      /** @var $vote Authority */
      if ($vote = $authority->findByPk($pk))
        $vote->saveAttributes(array("score" => $score));
      else
        $authority->createRecord($pk + array("score" => $score));
    }

    // TODO оценка публикации
  }

?>
